package school.entity;

// 学生子类，继承Person父类
public class Student extends Person {
    private Course course; // 学生所选课程

    // 子类构造方法：通过super()调用父类构造方法初始化共性属性
    public Student(String id, String name, String gender) {
        super(id, name, gender); // 必须位于子类构造方法第一行
    }

    // 选课方法
    public void selectCourse(Course course) {
        this.course = course;
    }

    // 退课方法
    public void dropCourse() {
        this.course = null;
    }

    // 重写父类业务方法：打印学生课表（实现学生专属业务）
    @Override
    public void printWorkSheet() {
        super.printWorkSheet(); // 调用父类方法打印基础信息
        if (course != null) {
            System.out.println("学生课表：" + course);
        } else {
            System.out.println("学生课表：未选任何课程");
        }
    }

    // 重写toString()方法，便于打印学生信息
    @Override
    public String toString() {
        return "学生[编号=" + id + "，姓名=" + name + "，性别=" + gender + "，所选课程=" + (course != null ? course.getName() : "无") + "]";
    }
}